home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / tcl / spectcl-.000 / spectcl- / usr / local / SpecTcl-0.1a / help.tk < prev    next >
Encoding:
Text File  |  1995-11-06  |  4.2 KB  |  129 lines

  1. # SpecTcl, by S. A. Uhler
  2. # Copyright (c) 1994-1995 Sun Microsystems, Inc.
  3. #
  4. # See the file "license.txt" for information on usage and redistribution
  5. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  6. #
  7. # help messages for GUI builder
  8. # This is a place holder
  9.  
  10. # test simple field help
  11. # enable or disable help on a field by field basis
  12.  
  13. proc test_help {{on 1}} {
  14.     if {$on} {
  15.         bind . <Leave> {
  16.             catch {
  17.                 after cancel [set Cancel%W]
  18.                 unset Cancel%W
  19.             }
  20.             set _Message ""
  21.         }
  22.         bind . <Enter> {
  23.             set Cancel%W [after 1500 field_help %W %X %Y]
  24.             }
  25.     } else {
  26.         bind . <Leave> {}
  27.         bind . <Enter> {}
  28.     }
  29. }
  30.  
  31. # display a help message for a widget
  32. # Widget could be destroyed in the mean time
  33.  
  34. proc field_help {win X Y} {
  35.     global Field_help _Message Widgets
  36.     if {![winfo exists $win]} {return}
  37.     if {$win == ""}  {
  38.         set _Message ""
  39.     } elseif {[info exists Field_help($win)]} {
  40.         # eval at global level so we can reference globals in
  41.         # help messages
  42.         uplevel #0 "set _Message \[subst [list $Field_help($win)]\]"
  43.     } elseif {[info exists Widgets([winfo name $win])]} {
  44.         upvar #0 [winfo name $win] data
  45.         set _Message "$data(type) $data(item_name)"
  46.         if {$data(help) != ""} {
  47.             append _Message " ($data(help)"
  48.         }
  49.     } elseif {[regexp {((row)|(column))@[0-9]+} $win dummy what]} {
  50.          set _Message "Click to insert a new $what"
  51.     } elseif {[regexp {_outline:(..?)} $win dummy what]} {
  52.          set _Message "Click and drag to change column or row span"
  53.     } elseif {[catch {
  54.                 puts "Sorry, no help for $win"
  55.             }]} {
  56.         set _Message "The item you requested help for is gone!"
  57.     }
  58. }
  59.  
  60. # display a help message for a widget in its own toplevel
  61. # This is ugly (but there is no accounting for taste)
  62.  
  63. proc Field_help {win X Y} {
  64.     global Field_help
  65.     catch "destroy .help"
  66.     dputs "destroying help popup"
  67.     if {$win == ""}  {
  68.         return
  69.     } elseif {[info exists Field_help($win)]} {
  70.         set _Message $Field_help($win)
  71.     } elseif {[catch {
  72.                 set _Message "Sorry, no help for \"[winfo name $win]\""
  73.             }]} {
  74.         set _Message "The item you requested help for is gone!"
  75.     }
  76.     toplevel .help
  77.     wm overrideredirect .help 1
  78.     label .help.l -text $_Message -relief raised -bd 2
  79.     pack .help.l
  80.     wm geometry .help +[expr $X + 8]+[expr $Y + 8]
  81. }
  82.  
  83. # These are the help messages - subst'd at the global scope
  84.  
  85. array set Field_help {
  86.     .can_xscroll    "Use to manipulate the main canvas view"
  87.     .can_yscroll    "Use to manipulate the main canvas view"
  88.     .can_row        "Click to toggle resize behavior, drag to resize row"
  89.     .can_column        "Click to toggle resize behavior, drag to resize column"
  90.     .palette        "Click&drag for new widget, double-click for option sheet"
  91.     .palette.button    "Drag onto canvas to create an ordinary button"
  92.     .palette.canvas    "Drag onto canvas to create a canvas widget"
  93.     .menu.menub        "Misc. options menu"
  94.     .entry            "The text displayed on the current item"
  95.     .label            "This is just a label, it doesn't do anything - really!"
  96.     .anchor            "Which side of its slot the item sticks to"
  97.     .just            "Selects the text justification mode"
  98.     .bgcolor        "Selects the background color"
  99.     .fgcolor        "Selects the foreground color"
  100.     .relief            "Border style: flat, raised, sunken, ridged, or grooved" through all of the border reliefs"
  101.     .relief.inside    "Border style: flat, raised, sunken, ridged, or grooved" through all of the border reliefs"
  102.     .style            "Cycles through the text styles: plain, bold, italic, and both"
  103.     .justify        "Text justification: left, center, or right"
  104.     .fill            "Selects how the widget fills its slot"
  105.     .font_size        "Selects the point size for the font"
  106.     .borderwidth    "Selects how thick the border is"
  107.     .fg_color        "Choose the foreground color"
  108.     .menu_bg_color    "Choose the background color"
  109.     .orient            "Selects vertical or horizontal orientation"
  110.     .                "-"
  111.     .frame#7        "This is a hidden passageway to the next level"
  112.     .toolbar        "The toolbar"
  113.     .message        "Message area"
  114.     .can            "Extend the canvas by dragging a widget here"
  115.     .can.f            "This is the canvas on which the interface is built"
  116. }
  117.  
  118. # These are subject to change by whim of the menu edittor, and should
  119. # be dynamically calculated
  120.  
  121. array set Field_help {
  122.     .menu            "Menu bar: click and hold on a word"
  123.     .menu.mnu#1        "File menu: new, open, save, quit"
  124.     .menu.mnu#8        "Edit menu: edit-code, cut, copy, paste"
  125.     .menu.mnu#17    "Misc. Commands"
  126.     .menu.mnu#27    "Preferences menu"
  127.     .menu.mnu#30    "Help and quick tips"
  128. }
  129.